home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / biosdos.arc / BIOSREF1.CRD next >
Text File  |  1988-11-30  |  48KB  |  367 lines

  1. SAU
  2.                                                                         |                                                          |
  3.                 1       IBM BIOS QUICK REFERENCE SUMMARY                |  2                                                       |
  4.                               by DAVID E. POWELL                        |                                                          |
  5.                              All values are in hex                      |           ┌─────────────────────────────┐                |
  6.                                                                         |           │ INT 09 - KEYBOARD INTERRUPT │                |
  7.                            ┌────────────────┐                           |           └─────────────────────────────┘                |
  8.                            │ BIOS DATA AREA │                           |                                                          |
  9.                            └────────────────┘                           |  INPUT PARAMETERS:   NONE                                |
  10.                                                                         | OUTPUT PARAMETERS:   NONE                                |
  11.                ADDR.  SIZE            DESCRIPTION                       |            MEMORY:                                       |
  12.                                                                         |                                                          |
  13.                40:00  WORD    COM1 PORT ADDRESS                         |  ┌─┬─┬─┬─┬─┬─┬─┬─┐                                       |
  14.                40:02  WORD    COM2 PORT ADDRESS                         |  │7│6│5│4│3│2│1│0│ 40:17                                 |
  15.                40:04  WORD    COM3 PORT ADDRESS                         |  └─┴─┴─┴─┴─┴─┴─┴─┘                                       |
  16.                40:06  WORD    COM4 PORT ADDRESS                         |   │ │ │ │ │ │ │ │                                        |
  17.                40:08  WORD    LPT1 PORT ADDRESS                         |   │ │ │ │ │ │ │ └───── RIGHT SHIFT KEY DEPRESSED         |
  18.                40:0A  WORD    LPT2 PORT ADDRESS                         |   │ │ │ │ │ │ └─────── LEFT SHIFT KEY DEPRESSED          |
  19.                40:0C  WORD    LPT3 PORT ADDRESS                         |   │ │ │ │ │ └───────── CONTROL SHIFT KEY DEPRESSED       |
  20.                40:0E  WORD    LPT4 PORT ADDRESS                         |   │ │ │ │ └─────────── ALTERNATE SHIFT KEY DEPRESSED     |
  21.                40:10  WORD    EQUIPMENT FLAG (SEE INT 11)               |   │ │ │ └───────────── SCROLL LOCK STATE HAS BEEN TOGGLED|
  22.                40:13  WORD    MEMORY SIZE IN KBYTES                     |   │ │ └─────────────── NUM LOCK STATE HAS BEEN TOGGLED   |
  23.                40:17  BYTE    KEYBOARD FLAG BYTE 0 (SEE INT 9)          |   │ └───────────────── CAPS LOCK STATE HAS BEEN TOGGLED  |
  24.                40:18  BYTE    KEYBOARD FLAG BYTE 1 (SEE INT 9)          |   └─────────────────── INSERT STATE IS ACTIVE            |
  25.                40:19  BYTE    STORAGE FOR ALTERNATE KEYPAD ENTRY        |                                                          |
  26.                40:1A  WORD    POINTER TO KEYBOARD BUFFER HEAD           |  ┌─┬─┬─┬─┬─┬─┬─┬─┐                                       |
  27.                40:1C  WORD    POINTER TO KEYBOARD BUFFER TAIL           |  │7│6│5│4│3│2│1│0│ 40:18                                 |
  28.                40:1E  20BYTES KEYBOARD BUFFER                           |  └─┴─┴─┴─┴─┴─┴─┴─┘                                       |
  29.                40:3E  BYTE    DRIVE RECALIBRATION STATUS                |   │ │ │ │ │ │ │ │                                        |
  30.                40:3F  BYTE    MOTOR STATUS                              |   │ │ │ │ │ │ │ └───── LEFT CONTROL KEY DEPRESSED        |
  31.                40:3E  BYTE    DRIVE RECALIBRATION STATUS                |   │ │ │ │ │ │ └─────── LEFT ALT SHIFT KEY DEPRESSED      |
  32.                40:3F  BYTE    MOTOR STATUS                              |   │ │ │ │ │ └───────── SYSTEM KEY DEPRESSED AND HELD     |
  33.                40:40  BYTE    MOTOR OFF COUNTER (DECR. BY TIMER)        |   │ │ │ │ └─────────── SUSPEND KEY HAS BEEN TOGGLED      |
  34.                40:41  BYTE    STATUS OF LAST DISKETTE OPERATION         |   │ │ │ └───────────── SCROLL LOCK KEY IS DEPRESSED      |
  35.                40:42  7 BYTES NEC STATUS                                |   │ │ └─────────────── NUM LOCK KEY IS DEPRESSED         |
  36.                40:49  BYTE    CURRENT CRT MODE                          |   │ └───────────────── CAPS LOCK KEY IS DEPRESSED        |
  37.                40:4A  WORD    NUMBER OF COLUMNS ON SCREEN               |   └─────────────────── INSERT KEY IS DEPRESSED           |
  38.                40:4C  WORD    REGEN BUFFER LENGTH IN BYTES              |                                                          |
  39.                40:4E  WORD    STARTING OFFSET OF REGEN BUFFER           |  ┌─┬─┬─┬─┬─┬─┬─┬─┐                                       |
  40.                40:50  8 WORDS CURSOR POSITION PAGES 1-8                 |  │7│6│5│4│3│2│1│0│ 40:96                                 |
  41.                40:60  BYTE    END LINE FOR CURSOR                       |  └─┴─┴─┴─┴─┴─┴─┴─┘                                       |
  42.                40:61  BYTE    START LINE FOR CURSOR                     |   │ │ │ │ │ │ │ │                                        |
  43.                40:62  BYTE    CURRENT PAGE BEING DISPLAYED              |   │ │ │ │ │ │ │ └───── LAST CODE WAS THE E1 HIDDEN CODE  |
  44.                40:63  WORD    BASE PORT ADDRESS FOR ACTIVE DISPLAY      |   │ │ │ │ │ │ └─────── LAST CODE WAS THE E0 HIDDEN CODE  |
  45.                40:65  BYTE    CURRENT SETTING OF THE 3X8 REGISTER       |   │ │ │ │ │ └───────── RIGHT CTL KEY DOWN                |
  46.                40:66  BYTE    CURRENT PALETTE SETTING COLOR CARD        |   │ │ │ │ ├─────────── RIGHT ALT KEY DOWN                |
  47.                40:67  DWORD   TEMP. STORAGE FOR SS:SP DURING SHUTDOWN   |   │ │ │ │ └─────────── ALT GRAPHICS KEY DOWN (WT ONLY)   |
  48.                40:6C  DWORD   TIMER COUNTER LOW WORD, HIGH WORD         |   │ │ │ └───────────── ENHANCED KEYBOARD INSTALLED       |
  49.                40:70  BYTE    24 HOUR TIMER OVERFLOW                    |   │ │ └─────────────── FORCE NUM LOCK IF RD ID & KBX     |
  50.                40:71  BYTE    BIOS BREAK FLAG (BIT 7 = BREAK KEY HIT)   |   │ └───────────────── LAST CHAR WAS FIRST ID CHAR       |
  51.                40:72  WORD    RESET FLAG (1234 = SOFT RESET)            |   └─────────────────── DOING A READ ID (MUST BE BIT0)    |
  52.                40:74  BYTE    STATUS OF LAST HARD DISK OPERATION        |                                                          |
  53.                40:75  BYTE    NUMBER OF HARD FILES ATTACHED             |  ┌─┬─┬─┬─┬─┬─┬─┬─┐                                       |
  54.                40:77  BYTE    PORT OFFSET TO CURRENT HF ADAPTER         |  │7│6│5│4│3│2│1│0│ 40:97                                 |
  55.                40:78  4 BYTES TIMEOUT VALUE FOR LPT1,LPT2,LPT3,LPT4     |  └─┴─┴─┴─┴─┴─┴─┴─┘                                       |
  56.                40:7C  4 BYTES TIMEOUT VALUE FOR COM1,COM2,COM3,COM4     |   │ │ │ │ │ │ │ │                                        |
  57.                40:80  WORD    KEYBOARD BUFFER START OFFSET (SEG=40)     |   │ │ │ │ │ │ │ └───── SCROLL LOCK INDICATOR             |
  58.                40:82  WORD    KEYBOARD BUFFER END OFFSET (SEG=40H)      |   │ │ │ │ │ │ └─────── NUM LOCK INDICATOR                |
  59.                40:84  BYTE    ROWS ON THE SCREEN (EGA ONLY)             |   │ │ │ │ │ └───────── CAPS LOCK INDICATOR               |
  60.                40:85  WORD    BYTES PER CHARACTER (EGA ONLY)            |   │ │ │ │ └─────────── CIRCUS SYSTEM INDICATOR           |
  61.                40:87  BYTE    MODE OPTIONS (EGA ONLY)                   |   │ │ │ └───────────── ACK RECEIVED                      |
  62.                40:88  BYTE    FEATURE BIT SWITCHES (EGA ONLY)           |   │ │ └─────────────── RESEND RECEIVED FLAG              |
  63.                40:8B  BYTE    LAST DISKETTE DATA RATE SELECTED          |   │ └───────────────── MODE INDICATOR UPDATE             |
  64.                40:8C  BYTE    HARD FILE STATUS RETURNED BY CONTROLLER   |   └─────────────────── KEYBOARD TRANSMIT ERROR FLAG      |
  65.                40:8D  BYTE    HARD FILE ERROR RETURNED BY CONTROLLER    |                                                          |
  66.                40:8E  BYTE    HARD FILE INTERRUPT (BIT 7=WORKING INT)   |                                                          |
  67.                40:90  4 BYTES MEDIA STATE DRIVE 0,1,2,3                 |  40:1E = KEYBOARD BUFFER (20H BYTES)                     |
  68.                40:94  2 BYTES TRACK CURRENTLY SEEKED TO DRIVE 0,1       |  40:1C = BUFFER TAIL POINTER                             |
  69.                40:96  BYTE    KEYBOARD FLAG BYTE 3 (SEE INT 9)          |  40:72 = 1234H IF CTL-ALT-DEL PRESSED ON KEYBOARD        |
  70.                40:97  BYTE    KEYBOARD FLAG BYTE 2 (SEE INT 9)          |    INT 05 INVOKED IF PRINT SCREEN KEY PRESSED.           |
  71.                40:98  DWORD   POINTER TO USERS WAIT FLAG                |    INT 1B INVOKED IF CTL-BREAK KEY SEQUENCE PRESSED.     |
  72.                40:9C  DWORD   USERS TIMEOUT VALUE IN MICROSECONDS       |    INT 15, AH=85 INVOKED ON PC/AT AND AFTER IF SYSTEM    |
  73.                40:A0  BYTE    RTC WAIT FUNCTION IN USE                  |       REQUEST KEY IS PRESSED.                            |
  74.                40:A1  BYTE    LANA DMA CHANNEL FLAGS                    |    INT 15, AH=4F INVOKED ON MACHINES AFTER PC/AT WITH    |
  75.                40:A2  2 BYTES STATUS LANA 0,1                           |       AL = SCAN CODE                                     |
  76.                40:A4  DWORD   SAVED HARDFILE INTERRUPT VECTOR           |                                                          |
  77.                40:A8  DWORD   EGA POINTER TO PARAMETER TABLE            |                 ┌─────────────────────┐                  |
  78.                40:B4  BYTE    KEYBOARD NMI CONTROL FLAGS (CONVERTIBLE)  |                 │ INT 10 - VIDEO BIOS │                  |
  79.                40:B5  DWORD   KEYBOARD BREAK PENDING FLAGS (CONVERTIBLE)|                 └─────────────────────┘                  |
  80.                40:B9  BYTE    PORT 60 SINGLE BYTE QUEUE (CONVERTIBLE)   |                                                          |
  81.                40:BA  BYTE    SCAN CODE OF LAST KEY (CONVERTIBLE)       |  INPUT PARAMETERS:                                       |
  82.                40:BB  BYTE    POINTER TO NMI BUFFER HEAD (CONVERTIBLE)  |                                                          |
  83.                40:BC  BYTE    POINTER TO NMI BUFFER TAIL (CONVERTIBLE)  |  AH = 00 - SET VIDEO MODE                                |
  84.                40:BD  16BYTES NMI SCAN CODE BUFFER (CONVERTIBLE)        |                                                          |
  85.                40:CE  WORD    DAY COUNTER (CONVERTIBLE AND AFTER)       |         AL = 00 - 40x25 ALPHANUMERIC B/W                 |
  86.                50:00  BYTE    PRINT SCREEN STATUS BYTE                  |            = 01 - 40x25 ALPHANUMERIC COLOR               |
  87.                                                                         |            = 02 - 80x25 ALPHANUMERIC B/W                 |
  88.                            ┌───────────────────────┐                    |            = 03 - 80x25 ALPHANUMERIC COLOR               |
  89.                            │ INT 05 - PRINT SCREEN │                    |            = 04 - 320x200 COLOR GRAPHICS                 |
  90.                            └───────────────────────┘                    |            = 05 - 320x200 B/W GRAPHICS                   |
  91.                                                                         |            = 06 - 640x200 B/W GRAPHICS                   |
  92.                                                                         |            = 07 - 80x25 MONOCHROME ALPHA                 |
  93.                 INPUT PARAMETERS:   NONE                                |            = 08 - 160x200 COLOR GRAPHICS (PCJR)          |
  94.                OUTPUT PARAMETERS:   NONE                                |            = 09 - 320x200 COLOR GRAPHICS (PCJR)          |
  95.                           MEMORY:                                       |            = 0A - 640x200 COLOR GRAPHICS (PCJR)          |
  96.                                                                         |            = 0D - 320x200 MONOCHROME GRAPHICS (EGA +)    |
  97.                50:0 = 00 - PRINT SCREEN HAS NOT BEEN CALLED, OR         |            = 0E - 640x200 MONOCHROME GRAPHICS (EGA +)    |
  98.                            UPON RETURN FROM A CALL THERE WERE NO        |            = 0F - 640x350 MONOCHROME GRAPHICS (EGA +)    |
  99.                            ERRORS.                                      |            = 10 - 640x350 MONOCHROME HI-RES (EGA +)      |
  100.                                                                         |                                                          |
  101.                     = 01 - PRINT SCREEN IS ALREADY IN PROGRESS.         |  AH = 01 - SET CURSOR TYPE                               |
  102.                                                                         |                                                          |
  103.                     = FF - ERROR ENCOUNTERED DURING PRINTING.           |         CH = TOP LINE FOR CURSOR (BITS 4-0)              |
  104.                                                                         |         CL = BOTTOM LINE FOR CURSOR (BITS 4-0)           |
  105.                                                                         |                                                          |
  106.                            ┌───────────────────────┐                    |  AH = 02 - SET CURSOR POSITION                           |
  107.                            │ INT 08 - SYSTEM TIMER │                    |                                                          |
  108.                            └───────────────────────┘                    |         DH = ROW                                         |
  109.                                                                         |         DL = COLUMN                                      |
  110.                 INPUT PARAMETERS:   NONE                                |         BH = PAGE NUMBER (0 FOR GRAPHICS MODES)          |
  111.                OUTPUT PARAMETERS:   NONE                                |                                                          |
  112.                           MEMORY:                                       |  AH = 03 - READ CURSOR POSITION                          |
  113.                                                                         |  ON EXIT:                                                |
  114.                40:6C = NUMBER OF INTERRUPTS SINCE POWER ON (4 BYTES)    |         DH = ROW #                                       |
  115.                40:70 = NUMBER OF DAYS SINCE POWER ON (1 BYTE)           |         DL = COLUMN #                                    |
  116.                40:67 = DAY COUNTER ON ALL PRODUCTS AFTER PC/AT          |         CH = TOP LINE FOR CURSOR (BITS 4-0)              |
  117.                40:40 = MOTOR CONTROL COUNT - GETS DECREMENTED           |         CL = BOTTOM LINE FOR CURSOR (BITS 4-0)           |
  118.                        AND SHUTS OFF DISKETTE MOTOR IF ZERO             |                                                          |
  119.                                                                         |                                                          |
  120.                INT 1C INVOKED AS A USER INTERRUPT.                      |                                CONTINUED ON NEXT PANEL   |
  121.                                                                         |                                                          |
  122.  
  123.  
  124.                                                                         |                                                          |
  125.                 3                                                       | 4                                                        |
  126.                INT 10 - VIDEO BIOS (CONTINUED)                          | INT 10 - VIDEO BIOS AH = 11 (CONTINUED)                  |
  127.                                                                         |                                                          |
  128.                AH = 04 - READ LIGHT PEN POSITION                        |           AL = 02 - ROM 8X8 DOUBLE DOT                   |
  129.                ON EXIT:  AH = 0 IF LIGHT PEN SWITCH IS NOT TRIGGERED    |                     BL = BLOCK TO LOAD                   |
  130.                          AH = 1 IF REGISTERS HAVE VALID VALUES          |                                                          |
  131.                               DH = ROW                                  |           AL = 03 - SET BLOCK SPECIFIER                  |
  132.                               DL = COLUMN                               |                     BL = CHARACTER GEN BLOCK SPECIFIER   |
  133.                               CH = RASTER LINE (0-199)                  |                                                          |
  134.                               CX = RASTER LINE ON NEW GRAPHICS MODES    |           AL = 10 - USER ALPHA LOAD                      |
  135.                               BX = PIXEL COLUMN (0-319,639)             |                     ES:BP = POINTER TO USER TABLE        |
  136.                                                                         |                     CX = COUNT TO STORE                  |
  137.                AH = 05 - SELECT ACTIVE DISPLAY PAGE                     |                     DX = CHARACTER OFFSET INTO TABLE     |
  138.                          AL = NEW PAGE INFO, SEE AH=0 FOR PAGE INFO     |                     BH = NUMBER OF BYTES PER CHARACTER   |
  139.                FOR PCjr ONLY:                                           |                     BL = BLOCK TO LOAD                   |
  140.                          AL = 80 TO READ CRT/CPU PAGE REGISTERS         |                                                          |
  141.                             = 81 TO SET CPU PAGE REGISTER               |           AL = 11 - ROM MONOCHROME SET                   |
  142.                               BL = CPU PAGE REGISTER                    |                     BL = BLOCK TO LOAD                   |
  143.                             = 82 TO SET CRT PAGE REGISTER               |                                                          |
  144.                               BH = CRT PAGE REGISTER                    |           AL = 12 - ROM 8X8 DOUBLE DOT                   |
  145.                             = 83 TO SET CPU AND PAGE REGISTERS          |                     BL = BLOCK TO LOAD                   |
  146.                               BH = CRT PAGE REGISTER                    |                                                          |
  147.                               BL = CPU PAGE REGISTER                    |           AL = 20 - USER GRAPHICS CHARS INT 01FH (8X8)   |
  148.                ON EXIT:                                                 |                     ES:BP = POINTER TO USER TABLE        |
  149.                               BH = CRT PAGE REGISTER                    |                                                          |
  150.                               BL = CPU PAGE REGISTER                    |           AL = 21 - USER GRAPHICS CHARS                  |
  151.                                                                         |                     ES:BP = POINTER TO USER TABLE        |
  152.                AH = 06 - SCROLL ACTIVE PAGE UP                          |                     CX = BYTES PER CHARACTER             |
  153.                          AL = NUMBER OF LINES, INPUT LINES BLANKED      |                     BL = ROW SPECIFIER                   |
  154.                          CX = ROW,COLUMN OF UPPER LEFT CORNER OF SCROLL |                          BL = 0 - USER SPECIFIED         |
  155.                          DX = ROW,COLUMN OF LOWER RIGHT CORNER OF SCROLL|                                   DL = ROWS              |
  156.                          BH = ATTRIBUTE TO BE USED ON BLANK LINE        |                          BL = 1 - 0E ROWS                |
  157.                                                                         |                          BL = 2 - 19 ROWS                |
  158.                AH = 07 - SCROLL ACTIVE PAGE DOWN                        |                          BL = 3 - 2B ROWS                |
  159.                          AL = NUMBER OF LINES, INPUT LINES BLANKED      |                                                          |
  160.                          CX = ROW,COLUMN OF UPPER LEFT CORNER OF SCROLL |           AL = 22 - ROM 8X14 SET                         |
  161.                          DX = ROW,COLUMN OF LOWER RIGHT CORNER OF SCROLL|                     BL = ROW SPECIFIER                   |
  162.                          BH = ATTRIBUTE TO BE USED ON BLANK LINE        |                                                          |
  163.                                                                         |           AL = 23 - ROM 8X8 DOUBLE DOT                   |
  164.                AH = 08 - READ ATTRIBUTE/CHARACTER AT CURSOR POSITION    |                     BL = ROW SPECIFIER                   |
  165.                          BH = DISPLAY PAGE                              |                                                          |
  166.                ON EXIT:                                                 |           AL = 30 - RETURN INFORMATION                   |
  167.                          AL = CHARACTER AT CURRENT CURSOR POSITION      |                     ES:BP = POINTER TO TABLE             |
  168.                          AH = ATTRIBUTE OF CHARACTER (ALPHA MODES ONLY) |                     DL = ROWS                            |
  169.                                                                         |                     CX = POINTS                          |
  170.                AH = 09 - WRITE ATTRIBUTE/CHARACTER AT CURSOR POSITION   |                     BH = INFORMATION DESIRED:            |
  171.                          BH = DISPLAY PAGE                              |                        = 0 - INT 1F POINTER              |
  172.                          CX = COUNT OF CHARACTERS TO WRITE              |                        = 1 - INT 44 POINTER              |
  173.                          AL = CHARACTER TO WRITE                        |                        = 2 - ROM 8X14 POINTER            |
  174.                          BL = ATTRIBUTE/COLOR OF CHARACTER. IF          |                        = 3 - ROM DOUBLE DOT POINTER      |
  175.                               BIT 7=1 IN GRAPHICS MODE THEN XOR         |                        = 4 - ROM DOUBLE DOT POINTER (TOP)|
  176.                               THE COLOR VALUE WITH ITS CURRENT VALUE    |                        = 5 - ROM ALPHA ALTERNATE 9X14    |
  177.                                                                         |                                                          |
  178.                AH = 0A - WRITE CHARACTER ONLY AT CURRENT CURSOR POSITION|    AH = 12 - ALTERNATE SELECT (EGA AND AFTER)            |
  179.                          BH = DISPLAY PAGE                              |                                                          |
  180.                          CX = COUNT OF CHARACTERS TO WRITE              |           BL = 10 - RETURN EGA INFORMATION               |
  181.                          AL = CHARACTER TO WRITE                        |           ON EXIT:  BH = 0 IF COLOR MODE IS IN EFFECT    |
  182.                          NOTE: SHOULD NOT BE USED IN GRAPHICS MODES     |                        = 1 IF MONO MODE IS IN EFFECT     |
  183.                                                                         |                     BL = 0 IF 64K EGA MEMORY             |
  184.                AH = 0B - SET COLOR PALETTE                              |                        = 0 IF 128K EGA MEMORY            |
  185.                          BH = 0 FOR BACKGROUND, =1 FOR FOREGROUND       |                        = 0 IF 192K EGA MEMORY            |
  186.                          BL = COLOR VALUE                               |                        = 0 IF 256K EGA MEMORY            |
  187.                                                                         |                     CH = FEATURE BITS                    |
  188.                AH = 0C - WRITE DOT                                      |                     CL = SWITCH SETTINGS                 |
  189.                          BH = PAGE NUMBER                               |                                                          |
  190.                          DX = ROW NUMBER                                |           BL = 20 - SELECT ALTERNATE PRINT SCREEN ROUTINE|
  191.                          CX = COLUMN NUMBER                             |                                                          |
  192.                          AL = COLOR VALUE (XOR'D IF BIT 7=1)            |    AH = 13 - WRITE STRING (EGA AND AFTER)                |
  193.                                                                         |                                                          |
  194.                AH = 0D - READ DOT                                       |           ES:BP = STRING TO BE WRITTEN                   |
  195.                          BH = PAGE NUMBER                               |           CX = CHARACTER ONLY COUNT                      |
  196.                          DX = ROW NUMBER                                |           DX = POSITION TO BEGIN STRING, IN CURSOR TERMS |
  197.                          CX = COLUMN NUMBER                             |           BH = PAGE NUMBER                               |
  198.                          AL = DOT READ UPON RETURN                      |           BL = ATTRIBUTE IF AL BIT 1=0                   |
  199.                                                                         |           AL = TYPE OF WRITE:                            |
  200.                AH = 0E - WRITE TELETYPE TO ACTIVE PAGE                  |                                                          |
  201.                          AL = CHARACTER TO WRITE                        |           ┌─┬─┬─┬─┬─┬─┬─┬─┐                              |
  202.                          BL = FOREGROUND COLOR IN GRAPHICS MODE         |           │7│6│5│4│3│2│1│0│ AL                           |
  203.                          BH = PAGE NUMBER                               |           └─┴─┴─┴─┴─┴─┴─┴─┘                              |
  204.                                                                         |            │ │ │ │ │ │ │ │                               |
  205.                AH = 0F - RETURN CURRENT VIDEO STATE                     |            │ │ │ │ │ │ │ └───── MOVE CURSOR              |
  206.                ON EXIT:  AL = MODE CURRENTLY SET (SEE AH=0)             |            │ │ │ │ │ │ └─────── STRING HAS ATTRIBUTES    |
  207.                          AH = NUMBER OF CHARACTER COLUMNS ON SCREEN     |            └─┴─┴─┴─┴─┴───────── NOT USED                 |
  208.                          BH = CURRENT ACTIVE DISPLAY PAGE               |                                                          |
  209.                                                                         |    AH = 14 - LOAD LCD CHAR FONT (CONVERTIBLE ONLY)       |
  210.                AH = 10 - SET/GET PALETTE REGISTERS (EGA AND AFTER)      |                                                          |
  211.                                                                         |           AL = 0 - LOAD USER SPECIFIED FONT              |
  212.                          AL = 00 - SET INDIVIDUAL PALETTE REGISTER      |                    ES:DI = POINTER TO CHARACTER FONT     |
  213.                                    BH = VALUE TO SET                    |                    CX = NUMBER OF CHARACTERS TO STORE    |
  214.                                    BL = PALETTE REGISTER TO BE SET      |                    DX = CHAR OFFSET INTO RAM FONT AREA   |
  215.                                                                         |                    BH = NUMBER OF BYTES PER CHARACTER    |
  216.                          AL = 01 - SET OVERSCAN REGISTER                |                    BL = 0 - LOAD MAIN FONT (BLOCK 0)     |
  217.                                    BH = VALUE TO SET                    |                       = 1 - LOAD ALTERNATE FONT (BLOCK 1)|
  218.                                                                         |                                                          |
  219.                          AL = 02 - SET ALL PALETTE REGS AND OVERSCAN    |           AL = 1 - LOAD SYSTEM ROM DEFAULT FONT          |
  220.                                    ES:DX = POINTER TO 16-BYTE TABLE     |                    BL = 0 - LOAD MAIN FONT (BLOCK 0)     |
  221.                                            OF REGISTER VALUES FOLLOWED  |                       = 1 - LOAD ALTERNATE FONT (BLOCK 1)|
  222.                                            BY THE OVERSCAN VALUE        |                                                          |
  223.                                                                         |           AL = 2 - SET MAPPING OF LCD HIGH INT. ATTR.    |
  224.                          AL = 03 - TOGGLE THE INTENSIFY/BLINKING BIT    |                    BL = 0 - IGNORE HIGH INTENSITY ATTR.  |
  225.                                    BL = 0 - ENABLE INTENSIFY            |                       = 1 - MAP HIGH INT. TO UNDERSCORE  |
  226.                                    BL = 1 - ENABLE BLINKING             |                       = 2 - MAP HIGH INT. TO REVERSE VID.|
  227.                                                                         |                       = 3 - MAP HI INT. TO SEL. ALT FONT |
  228.                AH = 11 - CHARACTER GENERATOR ROUTINE (EGA AND AFTER)    |                                                          |
  229.                                                                         |    AH = 15 - RETURN PHYSICAL DISPLAY PARMS (CONVERTIBLE) |
  230.                          AL = 00 - USER ALPHA LOAD                      |           ON EXIT:                                       |
  231.                                    ES:BP = POINTER TO USER TABLE        |           AX = ALTERNATD DISPLAY ADAPTER TYPE            |
  232.                                    CX = COUNT TO STORE                  |           ES:DI = POINTER TO PARAMETER TABLE:            |
  233.                                    DX = CHARACTER OFFSET INTO TABLE     |               WORD #          INFORMATION                |
  234.                                    BL = BLOCK TO LOAD                   |                 1    MONITOR MODEL NUMBER                |
  235.                                    BH = NUMBER OF BYTES PER CHARACTER   |                 2    VERTICAL PELS PER METER             |
  236.                                                                         |                 3    HORIZONTAL PELS PER METER           |
  237.                          AL = 01 - ROM MONOCHROME SET                   |                 4    TOTAL NUMBER OF VERTICAL PELS       |
  238.                                    BL = BLOCK TO LOAD                   |                 5    TOTAL NUMBER OF HORIZONTAL PELS     |
  239.                                                                         |                 6    HORIZ. PEL SEPERATION IN MICROMETERS|
  240.                                                                         |                 7    VERT. PEL SEPERATION IN MICROMETERS |
  241.                                                                         |                                                          |
  242.                                                                         |                                                          |
  243.                                               CONTINUED ON NEXT PANEL   |                                                          |
  244.  
  245.  
  246.                                                                         |                                                          |
  247.                 5                                                       | 6  INT 13 - DISKETTE BIOS (CONTINUED)                    |
  248.                       ┌──────────────────────────────────┐              |                                                          |
  249.                       │ INT 11 - EQUIPMENT DETERMINATION │              |                 DISKETTE STATUS DEFINITIONS              |
  250.                       └──────────────────────────────────┘              |                                                          |
  251.                                                                         |   80 = TIME OUT               │ 08 = DMA FAILURE         |
  252.                 INPUT PARAMETERS: NONE                                  |   40 = SEEK FAILURE           │ 06 = MEDIA CHANGE        |
  253.                OUTPUT PARAMETERS:                                       |   20 = NEC CONTROLLER FAILURE │ 04 = SECTOR NOT FOUND    |
  254.                                                                         |   10 = CRC ERROR              │ 03 = WRITE PROTECTED     |
  255.                ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐                        |   0C = UNSUPPORTED TRACK      │ 02 = BAD ADDRESS MARK    |
  256.                │F│E│D│C│B│A│9│8│7│6│5│4│3│2│1│0│ AX                     |   09 = DMA BOUNDARY ERROR     │ 01 = INVALID FUNCTION    |
  257.                └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘                        |                                                          |
  258.                 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │                         |         CY = 1 IF STATUS PRESENTED IS NOT ZERO           |
  259.                 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ IPL DISKETTE INSTALLED |                                                          |
  260.                 │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─── MATH COPROCESSOR       |               ┌──────────────────────────┐               |
  261.                 │ │ │ │ │ │ │ │ │ │ │ │ │ └───── NOT USED               |               │ INT 13 - FIXED DISK BIOS │               |
  262.                 │ │ │ │ │ │ │ │ │ │ │ │ └─────── NOT USED               |               └──────────────────────────┘               |
  263.                 │ │ │ │ │ │ │ │ │ │ └─┴───────── INITIAL VIDEO MODE     |                                                          |
  264.                 │ │ │ │ │ │ │ │ └─┴───────────── # OF DISKETTE DRIVES   |    UNLESS OTHERWISE NOTED, ALL FIXED DISK INTERRUPT      |
  265.                 │ │ │ │ │ │ │ └───────────────── NOT USED               |    CALLS FUNCTION AS FOLLOWS:                            |
  266.                 │ │ │ │ └─┴─┴─────────────────── NUMBER OF RS232 CARDS  |    INPUT PARAMETERS:                                     |
  267.                 │ │ │ └───────────────────────── NOT USED               |              AH = FUNCTION REQUEST NUMBER                |
  268.                 │ │ └─────────────────────────── INT. MODEM INSTALLED   |              AL = NUMBER OF SECTORS                      |
  269.                 └─┴───────────────────────────── NUMBER OF PRINTERS     |              BX = ADDRESS OF USER BUFFER (ES = SEGMENT)  |
  270.                                                                         |              CH = CYLINDER NUMBER                        |
  271.                  NOTE: INITIAL VIDEO MODE (BITS 4 & 5)                  |                   (BITS 9,A = BITS 7,8 OF CL)            |
  272.                    00 - UNUSED              01 - 40x25 COLOR CARD       |              CL = SECTOR NUMBER                          |
  273.                    10 - 80x25 COLOR CARD    11 - 80x25 MONOCHROME CARD  |              DH = HEAD NUMBER                            |
  274.                                                                         |              DL = DRIVE NUMBER, BIT 7=1                  |
  275.                                                                         |    OUTPUT PARAMETERS:                                    |
  276.                                                                         |              AH = STATUS OF OPERATION:                   |
  277.                       ┌────────────────────────────────┐                |                                                          |
  278.                       │ INT 12 - MEMORY SIZE DETERMINE │                |    BB = UNDEFINED ERROR     │ 09 = DMA BOUNDARY ERROR    |
  279.                       └────────────────────────────────┘                |    AA = DRIVE NOT READY     │ 08 = DMA FAILURE           |
  280.                                                                         |    80 = TIME OUT            │ 07 = PARAMETER ACT. FAIL   |
  281.                    INPUT PARAMETERS:   NONE                             |    40 = SEEK FAILURE        │ 05 = RESET FAILED          |
  282.                   OUTPUT PARAMETERS:                                    |    20 = CONTROLLER FAILURE  │ 04 = SECTOR NOT FOUND      |
  283.                                                                         |    11 = DATA ECC CORRECTED  │ 03 = WRITE PROTECT ERROR   |
  284.                    AX = NUMBER OF CONTIGUOUS 1K BLOCKS OF MEMORY        |    10 = BAD ECC ON DISK READ│ 02 = BAD ADDRESS MARK      |
  285.                                                                         |    0B = BAD TRACK DETECTED  │ 01 = INVALID FUNCTION REQ. |
  286.                              MEMORY:   NONE                             |    0A = BAD SECTOR DETECTED │ 00 = NO ERROR              |
  287.                                                                         |                                                          |
  288.                                                                         |              CY = 1 IF STATUS NOT ZERO                   |
  289.                           ┌────────────────────────┐                    |                                                          |
  290.                           │ INT 13 - DISKETTE BIOS │                    |                                                          |
  291.                           └────────────────────────┘                    |  AH = 00 - RESET FIXED DISK SYSTEM                       |
  292.                                                                         |                                                          |
  293.                    INPUT PARAMETERS:                                    |  AH = 01 - READ STATUS OF LAST OPERATION                 |
  294.                                                                         |  ON EXIT:  AL = STATUS OF LAST OPERATION                 |
  295.                    AH = 00 - RESET DISKETTE SYSTEM                      |                                                          |
  296.                    ON EXIT:  AH = STATUS                                |  AH = 02 - READ THE DESIRED SECTORS INTO MEMORY          |
  297.                                                                         |                                                          |
  298.                    AH = 01 - READ STATUS OF LAST OPERATION              |  AH = 03 - WRITE THE DESIRED SECTORS FROM MEMORY         |
  299.                    ON EXIT:  AH = STATUS                                |                                                          |
  300.                                                                         |  AH = 04 - VERIFY THE DESIRED SECTORS                    |
  301.                    AH = 02 - READ THE DESIRED SECTORS INTO MEMORY       |                                                          |
  302.                              AL = NUMBER OF SECTORS                     |  AH = 05 - FORMAT THE DESIRED TRACK                      |
  303.                              BX = ADDRESS OF BUFFER (ES=SEGMENT)        |         AL = INTERLEAVE VALUE (XT ONLY)                  |
  304.                              CH = TRACK NUMBER                          |                                                          |
  305.                              CL = SECTOR NUMBER                         |         BX = FORMAT BUFFER, SIZE = 512 BYTES             |
  306.                              DH = HEAD NUMBER                           |              THE FIRST 2*(SECTORS/TRACK) BYTES           |
  307.                              DL = DRIVE NUMBER (BIT 7=0)                |              CONTAIN F,N FOR EACH SECTOR.                |
  308.                    ON EXIT:                                             |              F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR     |
  309.                              AL = NUMBER OF SECTORS TRANSFERRED         |              N=SECTOR NUMBER                             |
  310.                              AH = STATUS                                |                                                          |
  311.                                                                         |  AH = 06 - FORMAT TRACK AND SET BAD SECTOR FLAGS         |
  312.                    AH = 03 - WRITE THE DESIRES SECTORS FROM MEMORY      |            (VALID FOR XT AND PORTABLE ONLY)              |
  313.                              AL,BX,CX,DX SAME AS AH=02                  |         AL = INTERLEAVE VALUE (XT ONLY)                  |
  314.                                                                         |         BX = FORMAT BUFFER, SIZE = 512 BYTES             |
  315.                    AH = 04 - VERIFY THE DESIRED SECTORS                 |              THE FIRST 2*(SECTORS/TRACK) BYTES           |
  316.                              AL,BX,CX,DX SAME AS AH=02                  |              CONTAIN F,N FOR EACH SECTOR.                |
  317.                                                                         |              F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR     |
  318.                    AH = 05 - FORMAT THE DESIRED TRACK                   |              N=SECTOR NUMBER                             |
  319.                              AL,BX,CX,DX SAME AS AH=02                  |                                                          |
  320.                              BUFFER CONTAINS ADDRESS FIELDS OF THE      |  AH = 07 - FORMAT THE DRIVE STARTING AT THE DESIRED TRACK|
  321.                              FORM C,H,R,N FOR EACH SECTOR FORMATTED     |            (VALID FOR XT AND PORTABLE ONLY)              |
  322.                                                                         |         AL = INTERLEAVE VALUE (XT ONLY)                  |
  323.                    AH = 06 - RESERVED FOR FIXED DISK                    |         BX = FORMAT BUFFER, SIZE = 512 BYTES             |
  324.                                                                         |              THE FIRST 2*(SECTORS/TRACK) BYTES           |
  325.                    AH = 07 - RESERVED FOR FIXED DISK                    |              CONTAIN F,N FOR EACH SECTOR.                |
  326.                                                                         |              F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR     |
  327.                    AH = 08 - READ DRIVE PARAMETERS                      |              N=SECTOR NUMBER                             |
  328.                    ON EXIT:  AH = STATUS OF OPERATION                   |                                                          |
  329.                                                                         |  AH = 08 - READ DRIVE PARAMETERS                         |
  330.                    AH = 15 - READ DASD TYPE                             |  ON EXIT:                                                |
  331.                              DL = DRIVE NUMBER                          |         DL = NUMBER OF CONSECUTIVE ACKNOWLEDGING DRIVES  |
  332.                    ON EXIT:                                             |         DH = MAXIMUM USABLE VALUE FOR HEAD NUMBER        |
  333.                              AH = 00 IF DRIVE NOT PRESENT               |         CH = MAXIMUM USEABLE VALUE FOR CYLINDER NUMBER   |
  334.                                 = 01 IF DISKETTE WITHOUT CHANGE LINE    |         CL = MAXIMUM USEABLE VALUE FOR SECTOR NUMBER     |
  335.                                 = 02 IF DISKETTE WITH CHANGE LINE       |              AND CYLINDER NUMBER HIGH BITS               |
  336.                                                                         |                                                          |
  337.                    AH = 16 - DISK CHANGE LINE STATUS                    |  AH = 09 - INITIALIZE DRIVE PAIR CHARACTERISTICS         |
  338.                              DL = DRIVE NUMBER                          |                                                          |
  339.                    ON EXIT:                                             |         INT 41 POINTS TO DATA BLOCK FOR DRIVE 80         |
  340.                              AH = STATUS OF OPERATION                   |         INT 46 POINTS TO DATA BLOCK FOR DRIVE 81         |
  341.                                                                         |                                                          |
  342.                    AH = 17 - SET DASD TYPE FOR FORMAT                   |               DATA BLOCK DEFINITIONS:                    |
  343.                              DL = DRIVE NUMBER                          |      +0 = MAXIMUM NUMBER OF CYLINDERS (DW)               |
  344.                              AL = 01 - 360KB DISKETTE IN 360KB DRIVE    |      +2 = MAXIMUM NUMBER OF HEADS (DB)                   |
  345.                                 = 02 - 360KB DISKETTE IN 1.2M DRIVE     |      +3 = STARTING REDUCED WRITE CURRENT CYLINDER        |
  346.                                 = 03 - 1.2M DISKETTE IN 1.2M DRIVE      |           (DW - XT ONLY)                                 |
  347.                                 = 04 - 720KB DISKETTE IN 720KB DRIVE    |      +5 = STARTING WRITE PRECOMP CYLINDER (DW)           |
  348.                    ON EXIT:                                             |      +7 = MAXIMUM ECC DATA BURST LENGTH (DB - XT ONLY)   |
  349.                              AH = STATUS OF OPERATION                   |      +8 = CONTROL BYTE:                                  |
  350.                                                                         |           ┌─┬─┬─┬─┬─┬─┬─┬─┐                              |
  351.                    AH = 18 - SET MEDIA TYPE FOR FORMAT                  |           │7│6│5│4│3│2│1│0│                              |
  352.                              DL = DRIVE NUMBER                          |           └─┴─┴─┴─┴─┴─┴─┴─┘                              |
  353.                              CH = LOWER 8 BITS OF NUMBER OF TRACKS      |            │ │ │ │ │ │ │ │                               |
  354.                              CL = HIGH 2 BITS OF NUMBER OF TRACKS (6,7) |            │ │ │ │ │ └─┴─┴───── DRIVE OPTION             |
  355.                                 = SECTORS PER TRACK (BITS 0-5)          |            │ │ └─┴─┴─────────── ALWAYS ZERO              |
  356.                    ON EXIT:                                             |            │ └───────────────── DISABLE ECC RETRIES      |
  357.                              ES:DI = POINTER TO 11-BYTE PARM TABLE      |            └─────────────────── DISABLE ACCESS RETIRES   |
  358.                              AH = 00 IF REQUESTED COMBINATION SUPPORTED |                                                          |
  359.                                 = 01 IF FUNCTION NOT AVAILABLE          |                                                          |
  360.                                 = 0C IF NOT SUPP. OR DRIVE TYPE UNKNOWN |                                                          |
  361.                                 = 80 IF THERE IS NO MEDIA IN THE DRIVE  |                                                          |
  362.                                                                         |                                                          |
  363.                                                                         |                                 CONTINUED ON NEXT PANEL  |
  364.                                             CONTINUED ON NEXT PANEL     |                                                          |
  365.                                                                         |                                                          |
  366.  
  367.